const BASE_URL = 'https://www.uinav.com'
// const BASE_URL = 'https://ugo.botue.com'

// 封装一个公共的请求方法
export default function request ({
  url,
  method,
  isAuth,
  data = {},
  showLoading = true
}) {
  return new Promise((resolve, reject) => {
    // header默认是空的,如果请求无须token,那么header传空对象
    let header = {}

    // 如果请求需要token,传Authorization
    if (isAuth) {
      // 从storage取token
      let token = wx.getStorageSync('token')
      if (!token) {
        // 如果用户需要登录态,而且又没有登录,那么跳转登录
        wx.navigateTo({
          url: '/pages/login/main'
        })
        return
      }
      header = {
        Authorization: token
      }
    }

    // 请求前,默认开启loading
    if (showLoading) {
      wx.showLoading({
        title: '加载中...',
        mask: true
      })
    }

    wx.request({
      url: BASE_URL + url,
      data,
      method,
      header,
      success: res => {
        // console.log(res)
        let { meta, message } = res.data
        if (meta.status === 200) {
          // console.log(message)
          resolve(message)
        } else {
          // 这个错误提示,它是后台发给前端的,
          // 前端处理,弹框提示用户
          wx.showModal({
            content: meta.msg
          })
          // 把这个错误提示传给调用的地方
          reject(meta.msg)
        }
      },
      fail () {
        // 网络错误
        // 处理,提示并reject
        wx.showModal({
          content: '网络错误，请重试'
        })
        // 把这个错误提示传给调用的地方
        reject(new Error('网络错误，请重试'))
      },
      complete () {
        // 请求结束后,关闭loading
        if (showLoading) {
          wx.hideLoading()
        }
      }
    })
  })
}
